import { CellStateEnum, CanvasEnum } from '../enum';

export type Cell = CellStateEnum.death | CellStateEnum.live;

export interface IModel {
  name: CanvasEnum;
  render(): void;
  x: number;
  y: number;
  width: number;
  height: number;
}

export interface ICanvas {
  model(): ModelConstructor;
  ctx: CanvasRenderingContext2D;
  renderModels(): void;
}

export interface ModelConstructor {
  new (x: number, y: number): IModel;
}
